package com.project.mapper;

import com.project.bean.LogBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 用户mapper接口
 */
@Mapper
public interface IUserMapper {
    /**
     * 添加用户
     * @param userBean 用户对象
     */
    @Insert("insert into t_user(u_userName,u_pwd,u_level,u_rName)values(#{userName},#{pwd},#{level},#{name})")
    public void addUser(UserBean userBean);

    /**
     * 删除用户
     * @param userId 用户id
     */
    @Delete("delete from t_user where pk_userId=#{userId}")
    public void delUser(int userId);

    /**
     * 根据id修改用户权限
     * @param userId 用户id
     * @param level 等级
     */
    @Update("update t_user set u_level=#{level} where pk_userId=#{userId}")
    public void updateLevel(@Param("userId") int userId, @Param("level") String level);

    /**
     * 动态查询用户
     * @param level 等级
     * @return 用户集合
     */
    public List<UserBean> findByItem(String level);

    /**
     * 登录
     * @param userName 用户名
     * @param pwd 密码
     * @return 登录用户对象，如果登录失败返回null
     */
    @Select("select * from t_user where u_userName=#{userName} and u_pwd=#{pwd}")
    @ResultMap("userMap")
    public UserBean login(@Param("userName") String userName, @Param("pwd") String pwd);

    /**
     * 根据id查询用户
     * @param userId 用户id
     * @return 用户对象
     */
    @Select("select * from t_user where pk_userId=#{userId}")
    @ResultMap("userMap2")
    public UserBean findById(int userId);

    /**
     * 按用户编号修改密码
     * @param id 编号
     * @param newPwd 新密码
     */
    @Update("update t_user set u_pwd=#{newPwd} where pk_userId=#{id}")
    public void updatePwd(@Param("id") int id,@Param("newPwd") String newPwd);

    /**
     * 添加日志
     * @param logBean 日志对象
     */
    @Insert("insert into t_log(l_date,l_info)values(#{LogDate},#{info})")
    public void addLog(LogBean logBean);
}
